package com.example.waterfall.util;

import java.util.ArrayList;
import java.util.List;


import com.example.waterfall.adapter.WaterfallAdapter;
import com.example.waterfall.model.BitmapInfo;
import com.example.waterfall.model.Images;


import android.content.Context;
import android.os.AsyncTask;

/**
 * 加载数据
 * 用以获取到图片相关信息，如大小，地址，描述。。。。
 * @author huangrongcai
 * 
 */
public class ContentTask extends AsyncTask<String, Void, List<BitmapInfo>> {
	 private TaskListener listener;
	 private Context mContext;
	public ContentTask(Context context,TaskListener listener) {
		this.listener = listener;
		this.mContext = context;
		
	}

	@Override
	protected void onPreExecute() {
		listener.onPreExecute();
		super.onPreExecute();
	}

	@Override
	protected List<BitmapInfo> doInBackground(String... params) {
		// TODO 返回获取到的数据,可通过网络获取将要下载的图片相关信息
		listener.doInBackground(params);
		return getBitmapInfo();
	}

	@Override
	protected void onPostExecute(List<BitmapInfo> result) {
		// TODO 数据加入到适配器，使适配器根据地址等信息去加载（缓存，本地，网络）
		listener.onPostExecute(result);
		
	}

	/**
	 * 任步任务回调
	 * @author huangrongcai
	 *
	 */
	public interface TaskListener{
		/**
		 * 执行异步任务之前
		 */
		void onPreExecute();
		List<BitmapInfo> doInBackground(String... params);
		
		/**
		 * 任务执行完成
		 * @param result
		 */
		void onPostExecute(List<BitmapInfo> result);
	}
	/**
	 * 演示，获取图片资源信息
	 * @return
	 */
	private List<BitmapInfo> getBitmapInfo(){
		List<BitmapInfo> list = new ArrayList<BitmapInfo>();
		for(int i=0; i<Images.imageUrls.length; i++){
			BitmapInfo info = new BitmapInfo();
			info.imageWidth =(int) (100 +(100*Math.random()));
			info.imageHeight =(int) (100 +(100*Math.random()));
			info.icon = Images.imageUrls[i];
			info.author = "作者";
			info.location = "天南地北还是我家";
			info.visitedCount = "102";
			info.good = (int)(100 +(100*Math.random()));
			list.add(info);
		}
		return list;
	}
}
